﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo01
{
    class Program
    {
        static void Main(string[] args)
        {
            //一个考试管理系统，需要录入考生成绩，只能录入数字，否则会报类型转换异常。
            //请编写相关代码，
            //1、捕获FormatException异常，并打印输出“异常已处理；
            //2、捕获OverflowException异常，数值超出float范围的异常，并打印输出“异常已处理；
            //3、捕获一般异常Exception异常。
            //4、最终处理finally
            //录入成绩结束后，请输出，总学生数，总分数，平均分。
            Dictionary<string, float> list = new Dictionary<string, float>();
                float Num1=0;
                string x;
            while (true)
            {
                while (true)
                {
                    Console.WriteLine("请输入考生学号：");
                     x = Console.ReadLine();
                    if (list.ContainsKey(x))
                    {
                        Console.WriteLine( "学号已存在，请重新输入");
                        continue;
                    }
                    break;
                }
               
                try
                {
                    Console.WriteLine("请输入学生分数");
                    Num1 = float.Parse(Console.ReadLine());

                }
                catch (FormatException e)
                {
                    Console.WriteLine("转换异常");
                    Console.WriteLine("异常已处理");
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.Source);
                    Console.WriteLine(e.StackTrace);
                }
                catch (OverflowException e)
                {
                    Console.WriteLine("数值超出float范围的异常");
                    Console.WriteLine("异常已处理");
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.Source);
                    Console.WriteLine(e.StackTrace);
                }
                catch (Exception e)
                {
                    Console.WriteLine("一般处理");
                    Console.WriteLine("异常已处理");
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.Source);
                    Console.WriteLine(e.StackTrace);
                }
                finally
                {
                    Console.WriteLine("最终处理finally");
                }
                list.Add(x,Num1 );
                Console.WriteLine("继续请继续输入，结束请输入e");
                string n = Console.ReadLine();
                if (n=="e")
                {
                    break;
                }

            }
            float Count = list.Count;
            float Sum = 0;
            foreach (var value in list.Values)
            {
                Sum += value;
            }
            float AVG = Sum / Count;
            Console.WriteLine($"总学生数{Count}，总分数{Count}, 平均分{AVG}");
        }
    }
}
